/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package erp.financeiro.dao;

import erp.financeiro.Compra;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import erp.financeiro.DadosBancarios;
import erp.financeiro.EstadoCompra;
import erp.financeiro.TipoPessoa;
import java.util.List;
import javax.persistence.Query;

/**
 *
 * @author luiz.vieira
 */
public class CompraDAO {


    public static void cadastrar(String descricao, EstadoCompra estado) throws Exception {

        Compra dados = new Compra();
        
        dados.setDescricao(descricao);
        dados.setEstado(estado);

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();
        
        em.getTransaction().begin();
        em.persist(dados);
        em.getTransaction().commit();
    }

    public static List<Compra> getCompras(EstadoCompra estado) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();
        
        Query query = em.createQuery("SELECT x FROM "+ Compra.class.getSimpleName() + " x where x.estado=:estado");
        query.setParameter("estado", estado);
        List<Compra> list = (List<Compra>) query.getResultList();

        return list;
    }

    public static Compra getCompraById(Long id) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();

        return (Compra) em.find(Compra.class, id);
    }

    public static Boolean excluir(Long id){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("erpfinanceiroPU");
        EntityManager em = emf.createEntityManager();

        Compra dados = (Compra) em.find(Compra.class, id);

        try{
            em.getTransaction().begin();
            em.remove(dados);
            em.getTransaction().commit();
        }catch(Exception e){
            return Boolean.FALSE;
        }
        return Boolean.TRUE;

    }
}
